home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 43 / Amiga Format CD43 (1999)(Future Publishing)(GB)(Track 1 of 2)[!][issue 1999-09].iso / -serious- / programming / c / memlib / developer / source / mwstrdup.c < prev    next >
C/C++ Source or Header  |  1999-06-14  |  1KB  |  30 lines

  1. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
  2. * |_o_o|\\ Copyright (c) 1994 Doug Walker                                 *
  3. * |. o.| ||          All Rights Reserved                                  *
  4. * | .  | ||          Written by Doug Walker                               *
  5. * | o  | ||          4701 Oak Park Road                                   *
  6. * |  . |//           Raleigh, NC 27612                                    *
  7. * ======                                                                  *
  8. \* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  9.  
  10. #include "mempriv.h"
  11. #include <string.h>
  12.  
  13. char *MWStrDup(const char *str, char *file, long line)
  14. {
  15.    char *mem;
  16.    if(str == NULL)
  17.    {
  18.       MWPrintf("%sMemWatch ERROR: strdup(NULL) called from file \"%s\" line %d\n", MW_NEWLINE,
  19.          file, line);
  20.       return NULL;
  21.    }
  22.    // Pass file and line along so any future memory error messages show the
  23.    // line of the strdup() call and not this one.
  24.    mem = MWAllocMem(strlen(str)+1, 0, MWI_MALLOC, file, line);
  25.  
  26.    if(mem) strcpy(mem, str);
  27.  
  28.    return mem;
  29. }
  30.